Several system management software applications require the availability of a comprehensive knowledge base that contains information on software products, which may be currently installed and running on a plurality of data processing systems. For example license manager products like IBM Tivoli License Manager (ITLM) needs a knowledge base (i.e. a catalogue) to identify the products found on the managed systems and correctly metering and invoicing the use of such products. Another example can be configuration manager applications, e.g. IBM Tivoli Configuration Manager (ITCM) in particular the Inventory feature, or software deployment products. Normally this knowledge base is in the form of a catalogue which contains definitions of software products (e.g. product names and version) and the related signature. The software catalogue lists all the known products which can be found by on the managed systems; each product can be identified by one or more executable modules indicative of its running. As an example, in the case of a License Manager product, a licensing agent working in the background detects the executable modules that have been launched; the licensing agent then identifies the corresponding products through the software catalogue. The catalogue needs to be “populated” and this is normally a costly activity.
Several IT management solutions exist that perform the discovery of installed software for either inventory or licensing purposes. One form of software discovery that is particularly effective exploits a previously defined signature for each product that has to be discovered. The term signature means any type of information that can be consumed by a software discovery application to determine the presence of one or more instances of a software product on a given computer. A typical and particularly simple implementation of a signature is one that specifies the file-name and the file-size of a key application file. In this case, detecting a file with matching characteristics would cause the signature to be matched, thus indicating that the associated software product is installed. One advantage of a signature-based approach to software discovery is that the matching of a signature can be correlated by a management application to a precise definition (name, version, etc.) of the entity (software product) being discovered. A software inventory application which exploits signature-based discovery of installed software therefore has the need of accessing a comprehensive knowledge base of product and signature definitions. The challenge of this approach is to maintain its content up-to-date with respect to:                new software products being continuously made available;        maintenance updates to existing software products.The lack of an industry standard for representing software signatures, let alone of a common shared repository that all software vendors could populate with knowledge about their own published software, determined the need for vendors of IT management solutions to create proprietary implementations of such a product-signature knowledge base, hereafter referred to as “KB”. The value of the KB is directly proportional to the coverage and accuracy of its content, therefore the problem is how to guarantee coverage and accuracy at an affordable cost.        
According to known methods normally employed to create product-signature information, one or more of the following actions is performed:                information is directly collected from the software producer (internal development department or independent software vendor);        a technical person who is experienced in the installation or use of a specific software product can manually produce accurate product and signature definitions for that product, or at least for a specific version;        a technical person who is experienced on the software installation and registration facilities available on one or more computing platforms can obtain product definitions by direct inspection of data maintained by the operating system on computers where those products have been installed, then it is possible to manually create signatures for these products based on OS registry values or installed files or both;        a technical person uses software tools that harvest information from a computer where the software is installed, in order to partially automate the activities described above.        
All of the above methods have some drawbacks. The first two are only applicable to software products which are internally developed or to products for which in-depth knowledge is available. The other methods require visiting multiple computers where different versions or different maintenance levels of the same software product may be installed, as they may require different signatures. The cost of creating and maintaining the product-signature KB with the above methods are often prohibitive, which results in incomplete and obsolete content.
It is an object of the present invention to provide a method and a system which alleviates the above drawbacks.